home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / pm2 / readme.emu < prev    next >
Text File  |  1994-10-29  |  6KB  |  166 lines

  1. README.emulator -- emulator package last modified Mar 19, 1993
  2.  
  3. Update Mar 19, 1993
  4.     
  5.     - file ramset.c: The erroneous flow of control of function
  6.     RMS_CreateRAMSet corrected. If a PRAM with less than 1
  7.     processors is tried to create, the program does give an
  8.     error message but continues execution... (Doing what?
  9.     Execute program with 0 (or less) processors? How much time
  10.     would it take? Infinitely long?) NORMALLY (IF THERE IS AT LEAST
  11.     ONE PROCESSOR) THIS BUG DOES NOT CAUSE ANY HARM.
  12.                              
  13.     - bitonic sorting program added to example PEL programs
  14.  
  15.     - "quick start for UNIX users" added to README.emulator file
  16.  
  17. Update Mar 9, 1993
  18.  
  19.     - file defintrp.c: line 311: id 'DefaultProc' changed to 'NdxVar'.
  20.     THIS BUG APPEARS AND HAS EFFECT ONLY WHEN COMPILED WITH debug
  21.     DEFINED, I.E. NOT IN NORMAL USE.
  22.  
  23.     - file defintrp.c: line 485: id 'DefaultProc' changed to 'NdxVar'.
  24.     THIS BUG APPEARS AND HAS EFFECT ONLY WHEN COMPILED WITH debug
  25.     DEFINED, I.E. NOT IN NORMAL USE.
  26.  
  27.     - file defintrp.c: line 1112: id 'RangeSep' changed to 'RangeSepStart'.
  28.     THIS BUG APPEARS AND HAS EFFECT ONLY WHEN COMPILED WITH debug
  29.     DEFINED, I.E. NOT IN NORMAL USE.
  30.                                      
  31.     - PRAM Emulator User's Manual: some misprints corrected.
  32.                                           
  33.     - makefile included to the package
  34.                                                
  35.     - pa shell program included to the package
  36.  
  37.     - example PEL programs collsym.pel (prints the collision symbol)
  38.     and spread.pel (spreads the number of processors in EREW model)
  39.     included to the package
  40.                                                              
  41.  
  42.  
  43. PRAM emulator is a software emulator of a theoretical model of
  44. parallel computing called Parallel Random Access Machine or PRAM for
  45. short. The emulator is distributed in ANSI C source code form. The
  46. emulator can be installed and used if an ANSI C compiler and a curses 
  47. screen handling package are available. (UNIX systems usually contain a
  48. curses package. Also public domain PDCurses can be used.) Also
  49. availability of the C preprocessor cpp or equivalent is recommended.
  50. The emulator system consists of a PEL (PRAM Emulator Language)
  51. assembler and an emulator program running assembled PEL programs.
  52.  
  53. The file
  54.  
  55.     emulator.tar.Z
  56.  
  57. is a compressed tar file containing 
  58.  
  59. - the source of the PRAM emulator in files
  60.  
  61.     *.c and *.h
  62.  
  63. - the makefile (written for gcc in UNIX but is easy to modify for 
  64.   other systems) 
  65.  
  66.     makefile
  67.  
  68. - the Bourne shell program that runs cpp as the first phase of 
  69.   the PEL assembler in file
  70.  
  71.     pa
  72.  
  73. - the PRAM Emulator User's Manual in postscript file
  74.  
  75.     userman.ps
  76.  
  77. - the PRAM Emulator Programmer's Manual in postscript file
  78.  
  79.     progrman.ps
  80.  
  81. - example PEL programs in files
  82.  
  83.     *.pel
  84.  
  85. The installation guide of the PRAM emulator is in Appendix A of the
  86. PRAM Emulator User's Manual. If you are using a UNIX system, then you
  87. can follow the following (example) installation instructions.
  88.  
  89. The system should include:
  90.     gcc compiler (if you have another ANSI C compiler, then change the
  91.                     makefile)
  92.     cpp C preprocessor 
  93.     curses terminal screen handling package
  94.     Bourne shell or equivalent (sh)
  95.  
  96. 1.  Copy (move) the file emulator.tar.Z to a directory you want 
  97.     and change to that directory.
  98.  
  99. 2.  Uncompress the file emulator.tar.Z:
  100.         uncompress emulator.tar.Z
  101.  
  102. 3.  Extract the files from the package:
  103.         tar xf emulator.tar
  104.  
  105. 4.  Compile and link the source to get the PEL assembler program pasm
  106.     and the emulator program pram:
  107.         make
  108.  
  109. 5.  If you want, you can move the executables to a different
  110.     directory. Move the files
  111.         pa   (Bourne shell program; included in the package)
  112.         pasm
  113.         pram
  114.  
  115. 6.  If you want, you can add the directory containing the above
  116.     executable to your path:
  117.         set path = ( $path <directory> )
  118.  
  119. 7.  Now you can use the PEL assembler with command
  120.         pa <source> <object>
  121.     and the emulator with command
  122.         pram [-aclmtM] [-r <regs>] <programfile>
  123.     (The shell program pa calls /usr/lib/cpp and pasm. Change the
  124.     program if the paths are not correct.)
  125.  
  126. 8.  The documentation is in postscript form in files
  127.         userman.ps (PRAM Emulator User's Manual)
  128.         progrman.ps (PRAM Emulator Programmer's Manual; this document
  129.             is for those who want to read and maintain the emulator 
  130.             source code.)
  131.     Print these files (or at least the file userman.ps) with 
  132.     a postscript printer.
  133.  
  134. 9.  Try it! The file bitonic.pel contains a PEL program that sorts N
  135.     elements using bitonic sorting algorithm. Compile the file:
  136.         pa bitonic.pel bitonic
  137.     Run:
  138.         pram -ct bitonic
  139.     The options c and t turn on the @CORE and @CLOCK monitoring 
  140.     directives in the program bitonic. These directives dump the
  141.     memory of the PRAM and the value of the common clock to standard
  142.     output stream (display). There is a @CORE directive in the beginning 
  143.     and in the end of the PRAM code and a @CLOCK directive at the end 
  144.     of the PRAM code (see file bitonic.pel).
  145.     The program first prints a prompt 'Z' and waits for you to enter a
  146.     seed for a random number generator. Enter some positive integer.
  147.     Then the program prints a prompt 'N' and waits for you to enter
  148.     N, the number of elements in the array. If N is not a power of two
  149.     then it is changed to the next larger power of two. Enter, for
  150.     example, 8. Then program generates a random array, dumps the PRAM
  151.     shared memory (the array starts from memory location 1), sorts the
  152.     array using N/2 processors, and dumps the used PRAM clock cycles 
  153.     and the shared memory.
  154.  
  155. If you have problems, consult the Installation Guide in Appendix A of
  156. the PRAM Emulator User's Manual. If you still have problems, consult
  157. the local system wizard. If you still have problems, consult me.
  158.  
  159. If you want to get information of possible future updates (if bugs are 
  160. found and updates are made), plese send me your email address. All 
  161. comments are welcome.
  162.  
  163. --
  164. Pasi Hamalainen, University of Joensuu, FINLAND
  165. email: phamal@cs.joensuu.fi
  166.